home *** CD-ROM | disk | FTP | other *** search
- From comp.windows.ms Thu Jan 10 12:18:20 1991
- From: fredf@microsoft.UUCP (Fred FREELAND)
- Date: 10 Jan 91 05:08:01 GMT
- Newsgroups: comp.windows.ms
- Subject: Default Directory for Word for Windows solution
-
-
- I've seen a lot of discussion in recent weeks about how to get Microsoft
- Word for Windows to remember the last directory you were in from session
- to session. While there are a number of somewhat kludgy ways to do this,
- I offer the following programatic solution. It's what I use every day and
- it works without fail. Hopefully someone else out there in netland can
- make some good use of it.
-
- There are three routines that probably do not already exist in your version
- of Word for Windows, but they are recognized. All you have to do is add
- the code shown below to macros with the names shown just above Sub MAIN for
- each case..
-
- The key to this whole scheme is the API call into Windows used by the
- AutoExit macro. This is what writes the WIN.INI entry that can be retrieved
- when Word for Windows is next started.
-
- Enjoy!
-
- -------------------------Code Begins Here-----------------------------------
- AutoeExec
- Sub MAIN
- ' This procedure checks attempts to return to the last directory used by
- ' Microsoft Word for Windows. It checks the WIN.INI file for a
- ' DefaultDirectory entry and changes to the directory path found there.
- ' No action is taken if no entry exists
-
- AName$ = "Microsoft Word" ' Set Application Name.
- KName$ = "DefaultDirectory" ' Set Key name.
- NewDir$ = GetProfileString$(AName$, KName$) ' Get the last directory used.
- ChDir NewDir$ ' Change directory.
- End Sub
-
- AutoOpen
- Sub MAIN
- ' This procedure determines the path of the file that was just opened.
- ' It then causes Word for Windows to make that directory the current
- ' default directory for future FileOpen operations.
-
- Path$ = "" ' Initialize Path$.
- LastFile$ = FileName$(1) ' Get path of last file opened.
- I = Len(LastFile$) ' Get length of filespec.
- While Path$ = ""
- If Mid$(LastFile$, I, 1) = "\" Then ' Starting from the right,
- Path$ = Left$(LastFile$, I - 1) ' look for the last directory
- End If ' delimiter (\). Take everything
- ' to the left of the delimiter
- ' for the path.
- I = I - 1
- Wend
- ChDir Path$ ' Change directory
- End Sub
-
- AutoExit
- 'WIN API procedure to write a WIN.INI entry.
- Declare Function WriteProfileString Lib "Kernel"(AName$, KName$, Repl$) As Integer
-
- Sub MAIN
- ' This procedure determines the directory path of the last file opened.
- ' It then writes the path to the DefaultDirectory entry in the WIN.INI.
-
- AName$ = "Microsoft Word" ' Set Application Name.
- KName$ = "DefaultDirectory" ' Set Key Name.
- Repl$ = "" ' Initialize replacement string.
- LastFile$ = FileName$(1) ' Get path of last file opened.
- I = Len(LastFile$) ' Get length of filespec.
- While Repl$ = ""
- If Mid$(LastFile$, I, 1) = "\" Then ' Starting from the right,
- Repl$ = Left$(LastFile$, I - 1) ' look for the last directory
- End If ' delimiter (\). Take everything
- ' to the left of the delimiter
- ' for the path.
- I = I - 1
- Wend
- X = WriteProfileString(AName$, KName$, Repl$) ' Write to WIN.INI file.
- End Sub
- ---------------------------Code Ends Here-----------------------------------
-
- --
- Frederick F. Freeland Jr. "Of all the things I've lost, Microsoft Corporation I miss my mind the most!" One Microsoft Way
- Redmond, WA 98052 (206) 882-8080 internet: fredf@microsoft.beaver.washington.EDU arpanet: fredf%microsoft@uw-beaver.ARPA
- uucp: uunet!microsoft!fredf Opinions expressed over this signature are my OWN and not those of my employer!
-
-